/*
    定义日志等级
    DEBUG 进行DEBUG时候答应日志的等级
    INFO 打印一些用户提示信息
    WARNING 打印警告信息
    ERROR 打印错误信息
    FATAL 打印致命信息
    OFF 关闭所有日志输出

*/

#pragma once 

#include <string>
#include <iostream>
#include <array>

namespace mylog{
    class LogLevel{
        public:
            enum class Level{
                UNKNOWN = 0,
                DEBUG,
                INFO,
                WARNING,
                ERROR,
                FATAL,
                OFF
            };
            // 存储日志级别和字符串表示的映射关系
            static constexpr std::array<std::string_view, 7> levelStrings={
                "UNKNOWN",
                "DEBUG",
                "INFO",
                "WARNING",
                "ERROR",
                "FATAL",
                "OFF"
            };

            // 转换日志级别为字符串表示
            static constexpr std::string_view LevelToString(Level level) {
                return levelStrings[static_cast<int>(level)];
            }

    };
}

/*
#include "LogLevel.hpp"
int main() {
    mylog::LogLevel::Level level = mylog::LogLevel::INFO;
    std::cout << mylog::LogLevel::LevelToString(level) << std::endl;
    return 0;
}
*/